package com.genreate.config;

import com.genreate.constant.GenType;
import com.genreate.util.xinyuan.HaiwaiGenConstant;

import java.util.ArrayList;
import java.util.List;

/**
 * 读取代码生成相关配置
 *
 * @author ruoyi
 */
public class GenConfig {

    /**
     * 作者
     */
    public static String author = "刘一山";

    /**
     * 生成包路径
     */
    public static String packageName = "com.util.generate";

    /**
     * 自动去除表前缀，默认是false
     */
    public static boolean autoRemovePre = false;

    /**
     * 表前缀(类名不会包含表前缀)
     */
    public static String tablePrefix = "sys_";

    public static String getAuthor() {
        return author;
    }

    public static String getPackageName() {
        return packageName;
    }

    public static boolean getAutoRemovePre() {
        return autoRemovePre;
    }

    public static String getTablePrefix() {
        return tablePrefix;
    }

    public static List<String> getTemplateList(GenType genType) {
        List<String> templates = new ArrayList<String>();
        String path = "vm/yys/xcgl/";
        if(GenType.XCGL == genType){
            templates.add(path + "domain.java.vm");
            templates.add(path + "dao.java.vm");
            templates.add(path + "service.java.vm");
            templates.add(path + "controller.java.vm");
        }else if(GenType.BIGSCREEN == genType){
            path = "vm/yys/bigScreen/";
            templates.add(path + "controller.java.vm");
            templates.add(path + "domain.java.vm");
            templates.add(path + "service.java.vm");
            templates.add(path + "serviceImpl.java.vm");
            templates.add(path + "mapper.java.vm");
            templates.add(path + "mapper.xml.vm");
        }else if(GenType.PUMP == genType){
            path = "vm/yys/pump/";
            templates.add(path + "controller.java.vm");
            templates.add(path + "domain.java.vm");
            templates.add(path + "service.java.vm");
            templates.add(path + "serviceImpl.java.vm");
            templates.add(path + "mapper.java.vm");
            templates.add(path + "mapper.xml.vm");
            templates.add(path + "sql/sql.vm");
        }else if(GenType.LJHL == genType){
            path = "vm/yys/ljhl/";
            templates.add(path + "controller.java.vm");
            templates.add(path + "domain.java.vm");
            templates.add(path + "service.java.vm");
            templates.add(path + "serviceImpl.java.vm");
            templates.add(path + "mapper.java.vm");
            templates.add(path + "mapper.xml.vm");
        }else if(GenType.WEIHANG == genType){
            path = "vm/yys/weiHang/";
            templates.add(path + "controller.java.vm");
            templates.add(path + "domain.java.vm");
            templates.add(path + "service.java.vm");
            templates.add(path + "serviceImpl.java.vm");
            templates.add(path + "mapper.java.vm");
            templates.add(path + "mapper.xml.vm");
        }else if(GenType.XINYUAN == genType){
            path = "vm/xinyuan/xinyuanApp/";
            templates.add(path + "controller.java.vm");
            templates.add(path + "domain.java.vm");
            templates.add(path + "service.java.vm");
            templates.add(path + "serviceImpl.java.vm");
            templates.add(path + "mapper.java.vm");
            templates.add(path + "mapper.xml.vm");
        }else if(GenType.XINYUAN_HAIWAI == genType){
            path = "vm/xinyuan/xinyuanHaiwai/";
            if(HaiwaiGenConstant.GENERATE_CONTROLLER){
                templates.add(path + "controller.java.vm");
                templates.add(path + "domain.java.vm");
            }else {
                templates.add(path + "domain.java.vm");
                templates.add(path + "service.java.vm");
                templates.add(path + "serviceImpl.java.vm");
                templates.add(path + "mapper.java.vm");
                templates.add(path + "mapper.xml.vm");
            }
        }else {
            throw new RuntimeException("不支持模板导出");
        }
        return templates;
    }

    /**
     * 获取模板信息
     *
     * @return 模板列表
     */
    public static List<String> getTemplateList(String tplCategory, String dabaseType) {
        List<String> templates = new ArrayList<String>();
//        templates.add("vm/java/domain.java.vm");
//        templates.add("vm/java/dao.java.vm");
//        templates.add("vm/java/service.java.vm");
//        templates.add("vm/java/controller.java.vm");
        //yys
        templates.add("vm/yys/xcgl/java/domain.java.vm");
        templates.add("vm/yys/xcgl/java/dao.java.vm");
        templates.add("vm/yys/xcgl/java/service.java.vm");
        templates.add("vm/yys/xcgl/java/controller.java.vm");

        //templates.add("vm/java/vo.java.vm");
        //templates.add("vm/java/bo.java.vm");
        //templates.add("vm/java/mapper.java.vm");
        //templates.add("vm/java/serviceImpl.java.vm");
        //templates.add("vm/java/controller.java.vm");
        //templates.add("vm/xml/mapper.xml.vm");
        //if ("oracle".equals(dabaseType)) {
        //    templates.add("vm/sql/oracle/sql.vm");
        //} else if ("postgres".equals(dabaseType)) {
        //    templates.add("vm/sql/postgres/sql.vm");
        //} else if ("sqlserver".equals(dabaseType)) {
        //    templates.add("vm/sql/sqlserver/sql.vm");
        //} else {
        //    templates.add("vm/sql/sql.vm");
        //}
        //templates.add("vm/js/api.js.vm");
        //if (GenConstants.TPL_CRUD.equals(tplCategory)) {
        //    templates.add("vm/vue/index.vue.vm");
        //} else if (GenConstants.TPL_TREE.equals(tplCategory)) {
        //    templates.add("vm/vue/index-tree.vue.vm");
        //} else if (GenConstants.TPL_SUB.equals(tplCategory)) {
        //    templates.add("vm/vue/index.vue.vm");
        //    templates.add("vm/java/sub-domain.java.vm");
        //}
        return templates;
    }

}
